class Singleton(type):
    _instances = {}

    def __call__(cls, *args, **kwargs):
        if cls not in cls._instances:
            cls._instances[cls] = super().__call__(*args, **kwargs)
        return cls._instances[cls]
def SignletonFunc(cls):
    instance = False  # 做一个标识，用于第一次返回实例
    
    def inner(*args, **kwargs):
        nonlocal instance

        if not instance:  # 如果为假，则创建一个实例
            instance = cls(*args, **kwargs)  # 调用People类，产生一个实例

        instance.__init__(*args, **kwargs)  # 让这个实例的属性可变化
        return instance  # 返回这个实例

    # 当instance拿到实例以后，if将不再执行，所以每次返回的都是第一次产生的实例

    return inner